[% setvar title Perl 6 Summary for the week ending 20030727 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='Perl 6 Summary for the week ending 20030727'></a><h1>Perl 6 Summary for the week ending 20030727</h1>
<p>Welcome to another in the ongoing series of Perl 6 summaries in which
your faintly frazzled summarizer attempts to find a native speaker of
Esperanto to translate this opening paragraph in honour of the huge
amount of money (1371 Euros) raised for TPF during the YAPC::Europe
auction, when the official language of both London.pm and Paris.pm's
websites were auctioned off as one lot. Somewhat to the surprise of
everyone, the winning bid was for Esperanto. As Jouke Visser just
commented on IRC, the price was well worth paying just to see the
looks of panic on the faces of Mark Fowler, Leon Brocard and other
London.pm worthies as the price of keeping the website English (and
changing Paris.pm's website to English in the process) shot up
beyond the reach of their collective pocket.</p>
<p>Meanwhile, we'll return to English and start with the internals list
as usual.</p>
<a name='Events'></a><h2>Events</h2>
<p>Junior reporter: &quot;Mr Macmillan, what caused your greatest
difficulties in your time as UK Prime Minister?&quot;</p>
<p>Macmillan: &quot;Events dear boy, events.&quot;</p>
<p>Whilst I'm not sure Dan would fully agree with Macmillan, there was a
certain amount of concern about Events (well, event handling). Damien
Neil is still convinced that asynchronous IO is the Wrong Thing, but
he hasn't convinced Dan, and (in this at least) it's Dan's opinion
that counts.</p>
<p><a href='http://groups.google.com/groups?threadm=a05210600bb405b78ecdc@' target='_blank'>groups.google.com</a>[63.120.19.221]</p>
<p><a href='http://groups.google.com/groups?threadm=a05210605bb4394cbca65@' target='_blank'>groups.google.com</a>[192.168.0.78] -- Dan ditches the cranky
reply</p>
<a name='Memory system issues'></a><h2>Memory system issues</h2>
<p>J&uuml;rgen B&ouml;mmels' work on the aforementioned Asynchronous
IO system means that he's been getting rather more involved with the
internals of Parrot's memory allocation and Garbage Collection system
than he intended. He had a few questions, which Dan answered.</p>
<p><a href='http://groups.google.com/groups?threadm=m2adb7n558.fsf@helium.physik.uni-kl.de' target='_blank'>groups.google.com</a></p>
<a name='Splitting core.ops'></a><h2>Splitting <b><i>core.ops</i></b></h2>
<p>Brent Dax announced that the patch splitting <b><i>core.ops</i></b> into a
slightly more logical set of smaller files has been committed. This
occasioned a small flurry of discussion and a smaller flurry of
patches to ensure that all the new .ops files had their associated
documentation files built.</p>
<p><a href='http://groups.google.com/groups?threadm=001e01c3506d$35bb71c0$2a01a8c0@brent' target='_blank'>groups.google.com</a></p>
<a name='Parrot docs translated to Japanese'></a><h2>Parrot docs translated to Japanese</h2>
<p>Koichi Sasada, a Japanese university student has translated the
Parrot Primer into Japanese and put it on his website. He wanted to
know if he could publicise the translation. This summary is (at least
in part) his answer.</p>
<p><a href='http://groups.google.com/groups?threadm=m3u19drgrb.wl_rspier@pobox.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://www.parrotcode.org/docs/intro.pod.html' target='_blank'>www.parrotcode.org</a> -- In English</p>
<p><a href='http://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html' target='_blank'>www.namikilab.tuat.ac.jp</a> --
In Japanese</p>
<a name='PMC methods'></a><h2>PMC methods</h2>
<p>Luke Palmer can't stop thinking of other ideas as he works on
implementing lazy PMCs. His latest idea relates to accessing methods
on PMCs without having to generate scads of new opcodes (Personally,
I don't see what's wrong with using the object stuff for getting both
PMC vtable (C) methods and methods that are implemented in Parrot
itself.) Luke proposed a few ops which he reckons will solve the
problem.</p>
<p><a href='http://groups.google.com/groups?threadm=ygc7k695lzz.fsf@babylonia.flatirons.org' target='_blank'>groups.google.com</a></p>
<a name='objects.t Failures'></a><h2><b><i>objects.t</i></b> Failures</h2>
<p>Simon Glover tracked down a problem with the <b><i>objects.t</i></b> test file
that had been failing on some, but not all platforms. It turns out
that the class_hash wasn't included as part of the root set, which
meant that the garbage collector could try to reclaim it before it
got used. Which is bad. He supplied a two line patch to fix the
problem. Which is good.</p>
<p>Dan made with the &quot;D'oh!&quot;, commenting that he'd known he'd forgotten
something.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.GSO.4.43.0307231340210.15278-100000@egg.amnh.org' target='_blank'>groups.google.com</a></p>
<a name='RFC: Cleaning up the ParrotIOLayer API'></a><h2>RFC: Cleaning up the ParrotIOLayer API</h2>
<p>J&uuml;rgen B&ouml;emmels has reached a point in his redoing of the
Parrot IO subsystem that he wanted to remove and/or rename several of
the old methods so he posted an RFC explaining what he intended to
do and asked for comments. Gregor N. Purdy had some comments, mostly
to do with the data structures involved (with particular reference to
strings) but other than that there has been no further comment.</p>
<p><a href='http://groups.google.com/groups?threadm=m2znj5f629.fsf@helium.physik.uni-kl.de' target='_blank'>groups.google.com</a></p>
<a name='Parrot Emits an Executable'></a><h2>Parrot Emits an Executable</h2>
<p>Daniel Grunblatt checked in a patch to make parrot generate native
executables. There are caveats about what must be done in order to get
a working executable and the original patch needed to have a few
wrinkles ironed out, but this looks like a fantastic start to me.</p>
<p><a href='http://groups.google.com/groups?threadm=200307241357.52340.daniel@grunblatt.com.ar' target='_blank'>groups.google.com</a></p>
<a name='Approaching Python'></a><h2>Approaching Python</h2>
<p>Michael Wallace wondered about the issue of compiling python to
parrot. He wondered if it would be possible to make use of the
existing Python compiler module which generates python bytecode from
a parse tree. He wondered if it'd be worthwhile modifying it to
generate parrot bytecode. The discussion which followed covered
various options for handling Python code, ranging from bytecode
transformation to translating the source code into Perl 6 (which is
probably the least likely to save Dan from pie).</p>
<p>I'm not sure if a particular approach was chosen, but Michael seems
keen to try a spike based on his initial suggestion.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.44.0307231929500.25353-100000@hydrogen.sabren.com' target='_blank'>groups.google.com</a></p>
<a name='Doc Patches'></a><h2>Doc Patches</h2>
<p>Jonathan Worthington sent in a patch to <b><i>intro.pod</i></b> and wondered if
that would count as a 'real' patch. The answer being &quot;Yes, of course
they do. Patch applied.&quot;</p>
<p><a href='http://groups.google.com/groups?threadm=rt-23136-61820.17.0328765314021@rt.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile in Perl 6 Language'></a><h1>Meanwhile in Perl 6 Language</h1>
<p>Things were again relatively quiet on the language list...</p>
<a name='Preprocessors and Patterns'></a><h2>Preprocessors and Patterns</h2>
<p>David Whipp explained what he meant when he talked about overriding
the <code>&lt;ws&gt;</code> pattern as a way of doing preprocessing. His insight
being that a C Preprocessor style directive is generally legal
anywhere that whitespace is legal, so by implementing a grammar along
the lines of:</p>
<pre>    grammar Perl6::WithCPPStyleDirectives {
        rule ws { &lt;CPPDirective&gt; | &lt;SUPER::ws&gt; }
        rule CPPDirective { ... }
        ...
    }</pre>
<p>one could avoid having to add a whole bunch of <code>&lt;CPPDirective&gt;</code>
subclauses to the various rules in the grammar.</p>
<p>Austin Hastings popped up to say that he thought that this was just
another aspect of the issue of being able to run grammars/patterns
against arbitrary objects, and proposed the idea of chaining
grammars (a la SAX pipelines I think). Dave came up with a possible
syntax:</p>
<pre>    $fh ~~ / &lt; &lt;Grammar.Lang.C.Preprocessor ==&gt; &lt;Grammar.Lang.C&gt; &gt; /;</pre>
<p>For the life of me I couldn't tell you whether I think that looks like
a brilliant or a disgusting idea.</p>
<p><a href='http://groups.google.com/groups?threadm=20030721165625.9247.qmail@onion.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Protocols'></a><h2>Protocols</h2>
<p>Discussion of the idea of borrowing Objective-C's Protocols for Perl
6 continued with a discussion of what that means precisely, and why
Java's interfaces are a sub optimal way of doing the Right Thing. In
general, people seemed to be in violent agreement.</p>
<p><a href='http://groups.google.com/groups?threadm=C85B5EA0-BD71-11D7-B9BA-000393DBC8FE@wgz.org' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, Announcements and Apologies'></a><h1>Acknowledgements, Announcements and Apologies</h1>
<p>Okay, okay, PONIE really stands for 'Perl On New Internal Engine'. I
think. Or maybe it doesn't. Maybe PONIE can stand for itself.</p>
<p>Many, many thanks to my kind hosts in Paris, Sebastien Huart and
Paul-Christophe Varoutas (and to Paul-Christophe's sister whose
apartment I borrowed for a couple of nights). Thanks also to Earle
Martin and Sam Vilain for Eurostar tickets, even if a communication
breakdown caused chaos on Sunday. No thanks at all to whoever pocketed
my iPod rather than handing it in to lost property.</p>
<p>Paris is a fabulous city and YAPC::Europe was both great fun and
enlightening. Quote of the week came at the Parrot BOF:</p>
<p>Dan: I'm really bad at reading my mails
Leo: You should at least read <i>my</i> mails
Everyone: Hear! Hear! (or words to that effect)</p>
<p>After which we went on to draw a bunch of boxes and arrows along the
way to fixing up the GC system.</p>
<p>Thanks are also due to my stepdaughter who's been looking after the
kittens for the past six weeks. Well, I say kittens, but now they're
back they are <i>huge</i>, gorgeous, and easily driven to distraction by
my shiny new laser pointer.</p>
<p>Thanks too to all of you who popped by at
<a href='http://www.bofh.org.uk/,' target='_blank'>www.bofh.org.uk</a> I promise more new content
this week.</p>
<p>As ever, if you've appreciated this summary, please consider one or
more of the following options:</p>
<ul>
<li><a name='Send money to the Perl Foundation at donate.perl-foundation.org/ and help support the ongoing development of Perl.'></a>Send money to the Perl Foundation at
<a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> and help support the ongoing
development of Perl.</li>
<li><a name='Get involved in the Perl 6 process. The mailing lists are open to all. dev.perl.org/perl6/ and www.parrotcode.org/ are good starting points with links to the appropriate mailing lists.'></a>Get involved in the Perl 6 process. The mailing lists are open  to
all. <a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> and <a href='http://www.parrotcode.org/' target='_blank'>www.parrotcode.org</a>
are good starting points with links to the appropriate mailing lists.</li>
<li><a name='Send feedback, flames, money, requests for consultancy, photographic and writing commissions, or anything really cool that isn't Nigerian spam to p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a>'></a>Send feedback, flames, money, requests for consultancy, photographic
and writing commissions, or anything really cool that isn't Nigerian
spam to <i><a href='http://search.cpan.org/perldoc?<a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a>'>p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a></a></i></li>
</ul>
</div>
